#!/usr/bin/env jruby

require 'jmx4r'

def display header, memory_usage
    puts header
    memory_usage.composite_type.key_set.each do |type|
        puts "\t#{type} : #{memory_usage.get type}"
    end
end
memory = JMX::MBean.find_by_name "java.lang:type=Memory"

display "Heap Memory Usage", memory.heap_memory_usage
display "Non Heap Memory Usage", memory.heap_memory_usage

if ARGV.length == 1 and ARGV[0] == "gc"
   puts "trigger a garbage collection"
   memory.gc
   display "Heap Memory Usage", memory.heap_memory_usage
   display "Non Heap Memory Usage", memory.heap_memory_usage   
end